cout << (i < j) ? i : j; 解释?
来源:百度知道 编辑:UC知道 时间:2024/05/10 19:56:53
i=15,j=20;
cout << (i < j) ? i : j; 如何解释?答案为何是1?
cout ? i : j; 如何解释?
cout << (i < j ? i : j); 这个答案是15
源码
#include <iostream>
using std::cout; using std::endl;
int main()
{
int i = 15, j = 20;
cout << (i < j ? i : j);
cout << endl;
cout << (i < j) ? i : j;
cout << endl;
cout << (i < j);
cout ? i : j;
cout << endl;
return 0;
}
“(cout << (i < j)) ? i : j;
首先输出i<j的值,即为1,然后表式cout << (i < j)返回cout的值,即1
然后变为cout ? i : j,或者说变为 1 ? i: j;它返回i的值,即为15
但是这个表达式的值没被输出,程序没有使用它.
”为什么没有使用它?
cout << (i < j) ? i : j; 如何解释?答案为何是1?
cout ? i : j; 如何解释?
cout << (i < j ? i : j); 这个答案是15
源码
#include <iostream>
using std::cout; using std::endl;
int main()
{
int i = 15, j = 20;
cout << (i < j ? i : j);
cout << endl;
cout << (i < j) ? i : j;
cout << endl;
cout << (i < j);
cout ? i : j;
cout << endl;
return 0;
}
“(cout << (i < j)) ? i : j;
首先输出i<j的值,即为1,然后表式cout << (i < j)返回cout的值,即1
然后变为cout ? i : j,或者说变为 1 ? i: j;它返回i的值,即为15
但是这个表达式的值没被输出,程序没有使用它.
”为什么没有使用它?
cout << (i < j) ? i : j;
由于结合性,等价为
(cout << (i < j)) ? i : j;
首先输出i<j的值,即为1,然后表式cout << (i < j)返回cout的值,即1
然后变为cout ? i : j,或者说变为 1 ? i: j;它返回i的值,即为15
但是这个表达式的值没被输出,程序没有使用它.
对于
cout << (i < j ? i : j);
它是输出表达式i < j ? i : j的值,而要计算表达式,首先计算i<j
得真,所以返回i的值作为该表达式的值,为15,并将其输出
这是一个常见的陷阱,平时要注意一下.
cout << (i < j) ? i : j;
如果i<j,则输出i,否则输出j。在本例中cout的输出为15
等同于
if(i < j)
cout << i;
else
cout << j;
答案应该是15吧
如果I<J哪么正确的话输出I错误的话输出J
为何可以 cout<<endl;
编程cout<<x+y为什么错?
C++cout<<'\a';是什么意思啊?
关于指针的输出cout<<p的提问
{cout<<this->stockcode<<this->quan<<this->price<<endl;}
#define P(EX) cout << #EX << ":" << EX << endl;
c++ cout<<endl<<endl 为何有两个endl
C++中cout<<x+ : :x<<end1是什么意思?
cout<<a<<'' '',这是什么意思啊?
cout<<name<<\" \"<<id<<\" \"<<age<<\" \";